package com.study.ssm.factory02;

import org.springframework.beans.factory.DisposableBean;
import org.springframework.beans.factory.InitializingBean;

/**
 * @author zhoujunlin
 * @date 2023年07月23日 20:43
 * @desc 对象的生命周期
 * --->set注入
 * --->InitializingBean(afterPropertiesSet)
 * --->xml中init-method配置(myInit)
 * --->DisposableBean(destroy)
 * --->xml中的destroy-method(myDestroy)
 */
public class Product implements InitializingBean, DisposableBean {

    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        System.out.println("setName:" + name);
        this.name = name;
    }

    @Override
    public void destroy() throws Exception {
        /**
         * 销毁⽅法的操作只适⽤于单例对象  在上下文close的时候被调用
         */
        System.out.println("Product.destroy");
    }

    public void myInit() {
        System.out.println("Product.myInit");
    }

    @Override
    public void afterPropertiesSet() throws Exception {
        System.out.println("Product.afterPropertiesSet");
    }

    public void myDestroy() {
        System.out.println("Product.myDestroy");
    }

}